package sql.dml.selecao.tabela.juncao;

import sql.ddl.TokensSQL;
import sql.dml.selecao.tabela.Onde;

public class Juncao extends Onde {
	String tabela1;

	TipoJuncaoPesquisa tipo = TipoJuncaoPesquisa.INNER;

	String tabela2;

	String comoFiltrar = "ON";

	String filtro = null;

	String alias = null;

	public Juncao(String tabela1, String tabela2, String... filtros) {
		this.tabela2 = tabela2;
		this.tabela1 = tabela1;
		try {
			filtro = filtros[0];
			for (int i = 1; i < filtros.length; i++)
				filtro += "," + filtros[i];
		} catch (Exception e) {
		}
	}

	public String codigoSQL() {
		String code = tabela1 + " " + tipo + " JOIN " + tabela2 + filtro();
		return alias == null ? code : TokensSQL.BEGINPARENTES + code
				+ TokensSQL.ENDPARENTES + TokensSQL.AS + TokensSQL.SPACE
				+ alias;
	}

	private String filtro() {
		return filtro != null ? " " + comoFiltrar + " " + filtro : "";
	}

	public String getAlias() throws Exception {
		return alias;
	}

}
